home *** CD-ROM | disk | FTP | other *** search
- package com.sun.java.swing;
-
- import java.awt.Component;
- import java.awt.EventQueue;
- import java.awt.Toolkit;
-
- class SystemEventQueueUtilities {
- private static boolean checkedSystemEventQueue = false;
- private static EventQueue systemEventQueue = null;
-
- static synchronized void addRunnableCanvas(JApplet applet) {
- JRootPane rootPane = applet.getRootPane();
- if (rootPane != null && ((JComponent)rootPane).getClientProperty("defeatSystemEventQueueCheck") != null) {
- checkedSystemEventQueue = true;
- }
-
- RunnableCanvas rc = new RunnableCanvas(applet);
- applet.getLayeredPane().add(rc);
- }
-
- private static synchronized void initSystemEventQueue() {
- if (!checkedSystemEventQueue) {
- try {
- systemEventQueue = Toolkit.getDefaultToolkit().getSystemEventQueue();
- } catch (SecurityException var4) {
- System.err.println("Swing: checked access to system event queue.");
- } finally {
- checkedSystemEventQueue = true;
- }
- }
-
- }
-
- static Exception postRunnable(Runnable doRun, Object lock) {
- if (!checkedSystemEventQueue) {
- initSystemEventQueue();
- }
-
- RunnableEvent event = new RunnableEvent(doRun, lock);
- if (systemEventQueue != null) {
- systemEventQueue.postEvent(event);
- } else {
- postRunnableCanvasEvent(event);
- }
-
- return event.exception;
- }
-
- private static synchronized void postRunnableCanvasEvent(RunnableEvent e) {
- RunnableCanvas runnableCanvas = com.sun.java.swing.SystemEventQueueUtilities.RunnableCanvas.lookup(e);
- if (runnableCanvas == null) {
- if (e.lock != null) {
- e.lock.notify();
- }
-
- } else {
- runnableCanvas.addRunnableEvent(e);
- ((Component)runnableCanvas).repaint();
- }
- }
-
- private static void processRunnableEvent(RunnableEvent runnableEvent) {
- Object lock = runnableEvent.lock;
- if (lock == null) {
- runnableEvent.doRun.run();
- } else {
- synchronized(lock){}
-
- try {
- try {
- runnableEvent.doRun.run();
- } catch (Exception var11) {
- runnableEvent.exception = var11;
- } finally {
- if (runnableEvent.lock != null) {
- runnableEvent.lock.notify();
- }
-
- }
- } catch (Throwable var13) {
- throw var13;
- }
- }
-
- }
-
- static synchronized void removeRunnableCanvas(JApplet applet) {
- com.sun.java.swing.SystemEventQueueUtilities.RunnableCanvas.remove(applet);
- }
-
- static void access$processRunnableEvent(RunnableEvent var0) {
- processRunnableEvent(var0);
- }
- }
-